package com.syt.cellphone.information.http

import com.syt.cellphone.information.data.pojo.BasePhoneList
import com.syt.cellphone.information.data.pojo.PhoneDetails
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query


/**
 * @auther zhulei
 * @date : 2020/9/25 16:19
 * @description : api
 */
interface MyApi {

    /**
     * 请求soc列表
     * @param pageNum 页数
     * @return soc列表
     */
//    @GET("soc/list/{pageNum}")
//    fun getNetListSoc(@Path("pageNum") pageNum: Int): Observable<SocList?>?

    /**
     * 请求推荐列表
     * @return 推荐列表
     */
//    @GET("recommend/list")
//    fun getRecommendList(): Observable<List<PhoneRecommend?>?>?

    /**
     * 获取soc详情
     * @param socId 处理器id
     * @return 处理器详情
     */
//    @GET("soc/list/{socId}")
//    fun getSocById(@Path("socId") socId: Int): Observable<Soc?>?

    /**
     * 分类查询 ， 搜索也走这个
     * @param pageNum 页号
     * @param name 分类名称 小米....
     * @return 分类结果数据
     */
    @GET("basePhone/classify/{pageNum}")
    suspend fun getClassifyPhone(
        @Path("pageNum") pageNum: Int,
        @Query("name") name: String?
    ): Response<MyResponse<BasePhoneList>>

    /**
     * 分页查询手机数据，这就直接查询最近更新
     * @param id 页号
     * @return 基础数据集
     */
    @GET("basePhone/list/{id}")
    suspend fun getBaseListPhone(@Path("id") id: Int): Response<MyResponse<BasePhoneList>>

    /**
     * 全部品牌
     * @return 品牌列表
     */
//    @GET("trademark/all")
//    fun getAllTrademark(): Observable<List<PhoneTrademark?>?>?

    /**
     * 查询一个设备的所有信息
     * @param phoneId 设备id
     * @return 设备信息大全
     */
    @GET("PhoneAllById/{id}")
    suspend fun getPhoneDetailsById(@Path("id") phoneId: String): Response<MyResponse<PhoneDetails>>

    /**
     * 上传评价设备
     * 如果需要登录，那么就需要请求头token
     * @param body 请求体
     * @return 请求结果
     */
//    @POST("estimate/add")
//    fun setEstimate(@Body body: RequestBody?): Observable<JSONObject?>?

    /**
     * 登录操作
     * @param user 登录信息
     * @return 返回结果
     */
//    @POST("/user/login")
//    fun setUserLogin(@Body user: PhoneUser?): Observable<PhoneUser?>?

    /**
     * 通知服务器发送  邮箱对应的验证码
     * @param email 邮箱号
     * @return 1 成功  其它 错误信息
     * Field from-data
     */
//    @POST("/user/email")
//    fun setUserEmail(@Query("email") email: String?): Observable<JSONObject?>?

    /**
     * 发送注册的所有信息
     * @param user 注册信息
     * @return 返回成功的用户名 + 用户token
     */
//    @POST("/user/register")
//    fun setRegistered(@Body user: PhoneUser?): Observable<Registered?>?

    /**
     * 上传图片接口
     * @param file 上传的图像文件
     * @return 上传结果
     * "code": 0,
     * "filepath": "/Users/space/Downloads/qq_file/IMG_20191227_103246.jpg",
     * "data": {
     * "src": "http://127.0.0.1/IMG_20191227_103246.jpg"
     * }
     */
//    @POST("/api/upload")
//    @Multipart
//    fun upload(@Part file: MultipartBody.Part?): Observable<UploadFile?>?

    /**
     * 上传多文件接口
     * @param body 上传的数据
     * @return 上传结果
     * {
     * "code": 0,
     * "data": [
     * "http://47.115.43.73:8111/wti13x1589450328502.jpg"
     * ],
     * "error": []
     * }
     */
//    @POST("/api/uploadFiles")
//    fun uploadFiles(@Body body: RequestBody?): Observable<UploadFiles?>?

    /**
     * 上传用户头像
     * @param portraitSrc 头像路径
     * @return 结果 msg = 1 + protraitSrc 成功  失败 msg = 0
     */
//    @POST("/user/portrait")
//    fun setPortrait(@Query("portraitSrc") portraitSrc: String?): Observable<JSONObject?>?



}